#ifndef EXCHANGE_INTEROP_DOCUMENT_MATRIX_H
#define EXCHANGE_INTEROP_DOCUMENT_MATRIX_H

#include <sstream>
#include <unordered_map>
#include <vector>
// #include "nlohmann/json.hpp"
#include "topology/TopoShape.hpp"

namespace AMCAX::Exchange
{
    namespace InterOp
    {
        /// @brief
        class InterOpMatrix
        {
        public:
            /// @brief Default matrix. Will use identity transform.
            InterOpMatrix() = default;

            InterOpMatrix(double orientation[3][3], double origin[3]);

            std::array<std::array<double, 3>, 3> GetOrientation() const;

            std::array<double, 3> GetOrigin() const;

        private:
            std::array<std::array<double, 3>, 3> orientation_ = {0};
            std::array<double, 3> origin_ = {0};
        };

    }
}

#endif // EXCHANGE_INTEROP_DOCUMENT_MATRIX_H